package ae.pcfc.cldos.online.common.delegate;

import ae.pcfc.cldos.online.common.ConstantsCommon.Steps;
import ae.pcfc.cldos.online.common.exception.BadAppException;
import ae.pcfc.cldos.online.common.vo.AppSaveResponseVO;
import ae.pcfc.cldos.online.common.vo.UserVO;
import ae.pcfc.cldos.online.common.vo.VisitVisaMainVO;

/**
 * 
 * @author akhader
 *
 */
public interface VisitVisaDelegate {

	/**
	 * @param visitVisaMainVO
	 * @return
	 * @throws Exception
	 */
	public AppSaveResponseVO submit(VisitVisaMainVO visitVisaMainVO) throws Exception;
	
	/**
	 * @param visitVisaMainVO
	 * @param appId
	 * @return
	 * @throws Exception
	 */
	public AppSaveResponseVO reSubmit(VisitVisaMainVO visitVisaMainVO, String appId) throws Exception;
	

	/**
	 * @param applicationId
	 * @param userVO
	 * @param step
	 * @return
	 */
	public VisitVisaMainVO getVisitVisaDetailByAppId(String applicationId, UserVO userVO, Steps step)throws BadAppException;
	/**
	 * @param applicationId
	 * @param userVO
	 * @param step
	 * @return
	 * @throws BadAppException
	 */
	public VisitVisaMainVO getVisitVisaViewDtls(String applicationId, UserVO userVO, Steps step) throws BadAppException;
	
}
